1
Introduzione alla preparazione dei dati privati in RAG
AI010Lesson 7
00:00

La fondazione del RAG

I modelli linguistici di grandi dimensioni (LLM) sono "congelati" nel tempo, limitati dal punto di interruzione dei dati usati per l'addestramento. Non possono rispondere a domande riguardanti il manuale interno della tua azienda o una riunione video privata di ieri.Generazione aumentata con recupero (RAG)colma questo divario fornendo al modello linguistico un contesto rilevante recuperato dai tuoi dati privati.

Il flusso di lavoro a più fasi

Per rendere i dati privati "leggibili" per un LLM, seguiamo una pipeline specifica:

  • Caricamento:Convertire vari formati (PDF, Web, YouTube) in un formato documento standard.
  • Suddivisione:Dividere documenti lunghi in pezzi più piccoli e gestibili.
  • Incorporamento:Convertire i frammenti di testo in vettori numerici (rappresentazioni matematiche del significato).
  • Archiviazione:Salvare questi vettori in un archivio vettoriale (come Chroma) per una ricerca di somiglianza estremamente rapida.
Perché la suddivisione è importante
I LLM hanno una "finestra di contesto" (limite sulla quantità di testo che possono elaborare in una volta). Se invii un PDF di 100 pagine, il modello fallirà. Suddividiamo i dati in blocchi per garantire che vengano inviate solo le parti più rilevanti all'interno del modello.
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
Why is chunk_overlap considered a critical parameter when splitting documents for RAG?
To reduce the total number of tokens used by the LLM.
To ensure that semantic context (the meaning of a thought) is not cut off at the end of a chunk.
To make the vector database store data faster.
Challenge: Preserving Context
Apply your knowledge to a real-world scenario.
You are loading a YouTube transcript for a technical lecture. You notice that the search results are confusing "Lecture 1" content with "Lecture 2."
Task
Which splitter would be best for keeping context like "Section Headers" intact?
Solution:
MarkdownHeaderTextSplitter or RecursiveCharacterTextSplitter. These allow you to maintain document structure in the metadata, helping the retrieval system distinguish between different chapters or lectures.